Data storage systems are arrangements of hardware and software that include storage processors coupled to arrays of non-volatile storage devices. In typical operation, the storage processors service IO (Input/Output) requests that arrive from hosts. The IO requests specify files or other data elements (e.g., block-based data) to be written, read, created, or deleted, for example. The storage processors each run software that manages incoming storage requests and perform various data processing operations to organize and secure user data stored on the non-volatile storage devices.
Storage processors commonly operate in one of two modes: active-passive or active-active. In active-passive mode, one storage processor (“SP”) of a data storage system operates as an active SP and handles data processing tasks associated with servicing IO requests directed to a particular data object. Other SPs of the data storage system operate in passive mode. Such other SPs may receive IO requests directed to the data object but do not process them. Rather, the other SPs forward the IO requests to the active SP, which processes the IO requests to effect data operations on the data object, such as reading and writing. In active-active mode, by contrast, multiple SPs of a data storage system can process IO requests to effect data operations on the same data object. No forwarding of IO requests is required, and multiple SPs can perform operations on the same data object at the same time.
Some conventional data storage systems include data federation equipment for providing location-independence of LUNs (logical unit numbers—although the acronym also describes the storage units themselves), cache coherency, and data mirroring between different sites in a metro-cluster. A well-known example of data federation equipment is the VPLEX family of systems available from EMC Corporation of Hopkinton, Mass. Conventional data storage systems have employed VPLEX systems in block-based active-passive arrangements stretched across distance to provide data mirroring to a remote site and failover in the event of a local site failure.